package controllers

import (
	"fmt"
	"goweb/models"
	"os"
	"path"
)

type UploadController struct {
	CommonController
}

/**
 *文件上传
 */
func (this *UploadController) UploadFile() {
	resp := make(map[string]interface{})
	resp["errno"] = models.RECODE_OK
	resp["errmsg"] = models.RecodeText(models.RECODE_OK)
	defer this.RetData(resp)
	f, h, _ := this.GetFile("image")
	//获取文件名称
	fileName := h.Filename
	//关闭上传的文件，不然的话会出现临时文件不能清除的情况
	f.Close()
	//判断文件是否存在info
	_, errinfo := os.Stat(path.Join("static/img", fileName))
	if errinfo == nil {
		fmt.Println("文件存在")
		resp["errno"] = 4000
		resp["errmsg"] = "文件已存在"
		return
	}
	//保存文件到指定的位置
	//static/img,这个是文件的地址，第一个static前面不要有/
	err := this.SaveToFile("image", path.Join("static/img", fileName))
	if err != nil {
		fmt.Println("err", err)
		resp["errno"] = models.RECODE_DATAERR
		resp["errmsg"] = models.RecodeText(models.RECODE_DATAERR)
	}
	return
}

/**
 *下载文件
 *第一个参数是文件的地址，第二个参数是下载显示的文件的名称
 */
func (this *UploadController) DownLoadFile() {
	this.Ctx.Output.Download("static/img/lzw.jpg", "dl.png")
}
